package ${packageName}.service;

import ${packageName}.entity.${className};
import ${packageName}.dto.${lowerClassName}.query.${className}QueryDto;
import ${packageName}.dto.${lowerClassName}.input.${className}InputDto;
import ${packageName}.vo.${lowerClassName}.${className}Vo;
import com.github.pagehelper.PageInfo;
import java.util.List;

public interface I${className}Service  {

     /**
     * 新增修改
     * @param ${lowerSaveClassName} 根据VO对象新增
     */
    ${className}Vo saveOrUpdate(${saveClassName} ${lowerSaveClassName});



    /**
     * 新增
     * @param ${lowerClassName} 根据对象新增
     */
    ${className} save(${className} ${lowerClassName});


    /**
     * 修改
     * @param ${lowerClassName} 根据对象修改
     */
    ${className} update(${className} ${lowerClassName});




    /**
     * 通过主键 查询对应对象
     * @param ${primaryClassName} 主键
     * @return
     */
    ${className} getByPrimary(${primaryClassType} ${primaryClassName});



    /**
     * 通过主键 查询对应对象DTO
     * @param ${primaryClassName} 主键
     * @return
     */
    ${className}Vo getVoByPrimary(${primaryClassType} ${primaryClassName});


     /**
     * 根据主键删除对象
     * @param ${primaryClassName} 主键
     */
    void deleteByPrimary(${primaryClassType} ${primaryClassName});

    /**
     * 分页查询
     * @param ${lowerClassSearchName} 查询条件
     * @return
     */
    PageInfo<${classPageName}> getPage(${classSearchName} ${lowerClassSearchName});


    /**
     * 查询
     * @param ${lowerClassName} 根据对象查询
     */
    List<${className}> getList(${className} ${lowerClassName});



}